home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Amiga Game Guide
/
AmigaGameGuide_CD.iso
/
Amiga
/
Game-Demos
/
HereticII-Demo
/
h2demo.lha
/
Notes on Memory
< prev
next >
Wrap
Text File
|
2000-04-19
|
5KB
|
122 lines
Notes on memory:
----------------
Heretic II requires at least 64 Megabytes of memory. Depending on the
size of your workbench or workbench replacement, there might not be
enough memory available, especially if you use the GL renderer. If
this is the case, try to free up as much memory as possible. You can
try to
- Open just a shell, then quit workbench (works with DirectoryOpus)
- Remove the background image if you have one
- Disable all sounds
- Boot with no startup sequence and just load what is absolutely
required
- Disable WBStartup
Try to get free memory to about 60 megs. The full game will include an
AREXX program that automatically sets up a reset-proof Ramdisk and
boots from there.
Additionally, there is a caching system for sounds and images/textures
that allows you to restrict the amount of these items that may remain
in memory at any time. This yields a slight performance penalty as
this data must be reconstructed from the disk representation on the
fly during the game, but will ensure that the game may be run with 64
Megs of memory.
These caches get their size from "console variables". There are two
ways to set a console variable, either from the command line of your
shell, or from the in-game console.
To set a variable from the command line, use the following when
starting Heretic II:
stack 600000
heretic2 +set variablename value
"variablename" is the name of the variable, and "value" is the value
you want to set this to. Multiple "set" commands can be issued this
way, each with a "+" in front:
heretic2 +set var1 value1 +set var2 value2
The following variables control the size of the caches:
ami_soundcache
Controls the size of the sound file cache. This is preset to a
reasonable value by default, but setting it to something bigger,
like 5000000 will greatly enhance playing on a machine with more
than 64 megabytes.
ami_imagecache
This controls the size of the texture cache in the *software*
renderer only. This is preset to 2500000, meaning it will use
approximately 2.5 Megabytes of memory for textures, which should
be enough for most systems. Setting this to a bigger value is
recommended for machines with more memory.
gl_texturecache
This variable controls the size of the texture cache in the GL
renderer. Since the textures are bigger in the GL version, this
defaults to 4000000. You may try to reset this to a lower value,
but anything below 3000000 will most likely provoke in-frame
swapping of textures, which might slow the game down
considerably.
As an example, lets set the sound cache to 5 megs and the imagecache
to 3 megs:
heretic2 +set ami_soundcache 5000000 +set ami_imagecache 3000000
The alternative way of setting the variables is from the in-game
console. To open the console during the menu, either select the "Go to
console" from the options menu, or press the ESCAPE key. During the
game, press the "tilde" key to drop down the console.
Once in the console, you can enter commands. To verify the contents of
a variable, just enter its name and press Return. To set a variable,
enter the same sequence you would have entered from the command line,
but without the "+", for example
set ami_soundcache 5000000
Further notes on reducing memory consumption for the GL renderer:
-----------------------------------------------------------------
Heretic II uses high-resolution textures, especially for model
skins. These tend to take up large amounts of memory (for example,
Corvus the elf's texture is 256x256 pixels in size, that's 128 KB of
memory for a single texture). There are two console variables that are
responsible for controlling the size of textures. These are named
"gl_picmip" and "gl_skinmip", respectively. gl_picmip controls the
size of normal (level) textures, while gl_skinmip controls the size of
skins.
Their contents is a numerical value that specifies how many mipmap
levels are to be skipped. Both are pre-set to "0", meaning that no
levels are skipped and the full texture resolution is used. Anything
bigger than 0 will skip this many levels.
If you just want to accept that this can reduce your memory, it is
sufficient to say that the higher the gl_picmip or gl_skinmip level,
the less memory a texture map will require. As a drawback, the higher
the value is, the more will you downgrade the visual appearance. It is
not advisable to set either value to anything above 3.
If you want to know what is happening, read on. Otherwise, you might
skip to the next section.
To understand how this works, you should know what a mipmap is. A
Mipmap is a collection of multiple texture maps with different sizes
that are used to prevent loosing details when a polygon is further
away. For any texture, there are subsequent texture maps with the same
image, scaled to half the size, so that a 256x256 texture map will
have subsequent images of 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2
and 1x1 Pixels. Of course, a 256x256 texture map looks better than a
128x128 texture map, but you might want to accept this fact and go
with less memory consumption; in this case, setting gl_picmip or
gl_skinmip to 1 will skip the first level (256x256 in this case) and
start with the second level (128x128 in this case).